package com.citcc4.traffic.data.domain.user;

import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;

public class OfficalUserEntityExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    protected Integer pageNo = 1;

    protected Integer startRow;

    protected Integer pageSize = 10;

    protected String fields;

    public OfficalUserEntityExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    public void setPageNo(Integer pageNo) {
        this.pageNo=pageNo;
        this.startRow = (pageNo-1)*this.pageSize;
    }

    public Integer getPageNo() {
        return pageNo;
    }

    public void setStartRow(Integer startRow) {
        this.startRow=startRow;
    }

    public Integer getStartRow() {
        return startRow;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize=pageSize;
        this.startRow = (pageNo-1)*this.pageSize;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setFields(String fields) {
        this.fields=fields;
    }

    public String getFields() {
        return fields;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        protected void addCriterionForJDBCDate(String condition, Date value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value.getTime()), property);
        }

        protected void addCriterionForJDBCDate(String condition, List<Date> values, String property) {
            if (values == null || values.size() == 0) {
                throw new RuntimeException("Value list for " + property + " cannot be null or empty");
            }
            List<java.sql.Date> dateList = new ArrayList<java.sql.Date>();
            Iterator<Date> iter = values.iterator();
            while (iter.hasNext()) {
                dateList.add(new java.sql.Date(iter.next().getTime()));
            }
            addCriterion(condition, dateList, property);
        }

        protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property);
        }

        public Criteria andManidIsNull() {
            addCriterion("MANID is null");
            return (Criteria) this;
        }

        public Criteria andManidIsNotNull() {
            addCriterion("MANID is not null");
            return (Criteria) this;
        }

        public Criteria andManidEqualTo(String value) {
            addCriterion("MANID =", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidNotEqualTo(String value) {
            addCriterion("MANID <>", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidGreaterThan(String value) {
            addCriterion("MANID >", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidGreaterThanOrEqualTo(String value) {
            addCriterion("MANID >=", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidLessThan(String value) {
            addCriterion("MANID <", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidLessThanOrEqualTo(String value) {
            addCriterion("MANID <=", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidLike(String value) {
            addCriterion("MANID like", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidNotLike(String value) {
            addCriterion("MANID not like", value, "manid");
            return (Criteria) this;
        }

        public Criteria andManidIn(List<String> values) {
            addCriterion("MANID in", values, "manid");
            return (Criteria) this;
        }

        public Criteria andManidNotIn(List<String> values) {
            addCriterion("MANID not in", values, "manid");
            return (Criteria) this;
        }

        public Criteria andManidBetween(String value1, String value2) {
            addCriterion("MANID between", value1, value2, "manid");
            return (Criteria) this;
        }

        public Criteria andManidNotBetween(String value1, String value2) {
            addCriterion("MANID not between", value1, value2, "manid");
            return (Criteria) this;
        }

        public Criteria andCeratorIsNull() {
            addCriterion("CERATOR is null");
            return (Criteria) this;
        }

        public Criteria andCeratorIsNotNull() {
            addCriterion("CERATOR is not null");
            return (Criteria) this;
        }

        public Criteria andCeratorEqualTo(String value) {
            addCriterion("CERATOR =", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorNotEqualTo(String value) {
            addCriterion("CERATOR <>", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorGreaterThan(String value) {
            addCriterion("CERATOR >", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorGreaterThanOrEqualTo(String value) {
            addCriterion("CERATOR >=", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorLessThan(String value) {
            addCriterion("CERATOR <", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorLessThanOrEqualTo(String value) {
            addCriterion("CERATOR <=", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorLike(String value) {
            addCriterion("CERATOR like", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorNotLike(String value) {
            addCriterion("CERATOR not like", value, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorIn(List<String> values) {
            addCriterion("CERATOR in", values, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorNotIn(List<String> values) {
            addCriterion("CERATOR not in", values, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorBetween(String value1, String value2) {
            addCriterion("CERATOR between", value1, value2, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratorNotBetween(String value1, String value2) {
            addCriterion("CERATOR not between", value1, value2, "cerator");
            return (Criteria) this;
        }

        public Criteria andCeratedateIsNull() {
            addCriterion("CERATEDATE is null");
            return (Criteria) this;
        }

        public Criteria andCeratedateIsNotNull() {
            addCriterion("CERATEDATE is not null");
            return (Criteria) this;
        }

        public Criteria andCeratedateEqualTo(Date value) {
            addCriterionForJDBCDate("CERATEDATE =", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateNotEqualTo(Date value) {
            addCriterionForJDBCDate("CERATEDATE <>", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateGreaterThan(Date value) {
            addCriterionForJDBCDate("CERATEDATE >", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CERATEDATE >=", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateLessThan(Date value) {
            addCriterionForJDBCDate("CERATEDATE <", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("CERATEDATE <=", value, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateIn(List<Date> values) {
            addCriterionForJDBCDate("CERATEDATE in", values, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateNotIn(List<Date> values) {
            addCriterionForJDBCDate("CERATEDATE not in", values, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CERATEDATE between", value1, value2, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andCeratedateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("CERATEDATE not between", value1, value2, "ceratedate");
            return (Criteria) this;
        }

        public Criteria andModifierIsNull() {
            addCriterion("MODIFIER is null");
            return (Criteria) this;
        }

        public Criteria andModifierIsNotNull() {
            addCriterion("MODIFIER is not null");
            return (Criteria) this;
        }

        public Criteria andModifierEqualTo(String value) {
            addCriterion("MODIFIER =", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotEqualTo(String value) {
            addCriterion("MODIFIER <>", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierGreaterThan(String value) {
            addCriterion("MODIFIER >", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierGreaterThanOrEqualTo(String value) {
            addCriterion("MODIFIER >=", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLessThan(String value) {
            addCriterion("MODIFIER <", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLessThanOrEqualTo(String value) {
            addCriterion("MODIFIER <=", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierLike(String value) {
            addCriterion("MODIFIER like", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotLike(String value) {
            addCriterion("MODIFIER not like", value, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierIn(List<String> values) {
            addCriterion("MODIFIER in", values, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotIn(List<String> values) {
            addCriterion("MODIFIER not in", values, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierBetween(String value1, String value2) {
            addCriterion("MODIFIER between", value1, value2, "modifier");
            return (Criteria) this;
        }

        public Criteria andModifierNotBetween(String value1, String value2) {
            addCriterion("MODIFIER not between", value1, value2, "modifier");
            return (Criteria) this;
        }

        public Criteria andUpdatedateIsNull() {
            addCriterion("UPDATEDATE is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedateIsNotNull() {
            addCriterion("UPDATEDATE is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedateEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATEDATE =", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateNotEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATEDATE <>", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateGreaterThan(Date value) {
            addCriterionForJDBCDate("UPDATEDATE >", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATEDATE >=", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateLessThan(Date value) {
            addCriterionForJDBCDate("UPDATEDATE <", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("UPDATEDATE <=", value, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateIn(List<Date> values) {
            addCriterionForJDBCDate("UPDATEDATE in", values, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateNotIn(List<Date> values) {
            addCriterionForJDBCDate("UPDATEDATE not in", values, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("UPDATEDATE between", value1, value2, "updatedate");
            return (Criteria) this;
        }

        public Criteria andUpdatedateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("UPDATEDATE not between", value1, value2, "updatedate");
            return (Criteria) this;
        }

        public Criteria andDelflagIsNull() {
            addCriterion("DELFLAG is null");
            return (Criteria) this;
        }

        public Criteria andDelflagIsNotNull() {
            addCriterion("DELFLAG is not null");
            return (Criteria) this;
        }

        public Criteria andDelflagEqualTo(String value) {
            addCriterion("DELFLAG =", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagNotEqualTo(String value) {
            addCriterion("DELFLAG <>", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagGreaterThan(String value) {
            addCriterion("DELFLAG >", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagGreaterThanOrEqualTo(String value) {
            addCriterion("DELFLAG >=", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagLessThan(String value) {
            addCriterion("DELFLAG <", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagLessThanOrEqualTo(String value) {
            addCriterion("DELFLAG <=", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagLike(String value) {
            addCriterion("DELFLAG like", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagNotLike(String value) {
            addCriterion("DELFLAG not like", value, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagIn(List<String> values) {
            addCriterion("DELFLAG in", values, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagNotIn(List<String> values) {
            addCriterion("DELFLAG not in", values, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagBetween(String value1, String value2) {
            addCriterion("DELFLAG between", value1, value2, "delflag");
            return (Criteria) this;
        }

        public Criteria andDelflagNotBetween(String value1, String value2) {
            addCriterion("DELFLAG not between", value1, value2, "delflag");
            return (Criteria) this;
        }

        public Criteria andCoustomeridIsNull() {
            addCriterion("COUSTOMERID is null");
            return (Criteria) this;
        }

        public Criteria andCoustomeridIsNotNull() {
            addCriterion("COUSTOMERID is not null");
            return (Criteria) this;
        }

        public Criteria andCoustomeridEqualTo(String value) {
            addCriterion("COUSTOMERID =", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridNotEqualTo(String value) {
            addCriterion("COUSTOMERID <>", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridGreaterThan(String value) {
            addCriterion("COUSTOMERID >", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridGreaterThanOrEqualTo(String value) {
            addCriterion("COUSTOMERID >=", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridLessThan(String value) {
            addCriterion("COUSTOMERID <", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridLessThanOrEqualTo(String value) {
            addCriterion("COUSTOMERID <=", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridLike(String value) {
            addCriterion("COUSTOMERID like", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridNotLike(String value) {
            addCriterion("COUSTOMERID not like", value, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridIn(List<String> values) {
            addCriterion("COUSTOMERID in", values, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridNotIn(List<String> values) {
            addCriterion("COUSTOMERID not in", values, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridBetween(String value1, String value2) {
            addCriterion("COUSTOMERID between", value1, value2, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andCoustomeridNotBetween(String value1, String value2) {
            addCriterion("COUSTOMERID not between", value1, value2, "coustomerid");
            return (Criteria) this;
        }

        public Criteria andNameIsNull() {
            addCriterion("NAME is null");
            return (Criteria) this;
        }

        public Criteria andNameIsNotNull() {
            addCriterion("NAME is not null");
            return (Criteria) this;
        }

        public Criteria andNameEqualTo(String value) {
            addCriterion("NAME =", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotEqualTo(String value) {
            addCriterion("NAME <>", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThan(String value) {
            addCriterion("NAME >", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameGreaterThanOrEqualTo(String value) {
            addCriterion("NAME >=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThan(String value) {
            addCriterion("NAME <", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLessThanOrEqualTo(String value) {
            addCriterion("NAME <=", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameLike(String value) {
            addCriterion("NAME like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotLike(String value) {
            addCriterion("NAME not like", value, "name");
            return (Criteria) this;
        }

        public Criteria andNameIn(List<String> values) {
            addCriterion("NAME in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotIn(List<String> values) {
            addCriterion("NAME not in", values, "name");
            return (Criteria) this;
        }

        public Criteria andNameBetween(String value1, String value2) {
            addCriterion("NAME between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andNameNotBetween(String value1, String value2) {
            addCriterion("NAME not between", value1, value2, "name");
            return (Criteria) this;
        }

        public Criteria andGenderIsNull() {
            addCriterion("GENDER is null");
            return (Criteria) this;
        }

        public Criteria andGenderIsNotNull() {
            addCriterion("GENDER is not null");
            return (Criteria) this;
        }

        public Criteria andGenderEqualTo(String value) {
            addCriterion("GENDER =", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotEqualTo(String value) {
            addCriterion("GENDER <>", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThan(String value) {
            addCriterion("GENDER >", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderGreaterThanOrEqualTo(String value) {
            addCriterion("GENDER >=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThan(String value) {
            addCriterion("GENDER <", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLessThanOrEqualTo(String value) {
            addCriterion("GENDER <=", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderLike(String value) {
            addCriterion("GENDER like", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotLike(String value) {
            addCriterion("GENDER not like", value, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderIn(List<String> values) {
            addCriterion("GENDER in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotIn(List<String> values) {
            addCriterion("GENDER not in", values, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderBetween(String value1, String value2) {
            addCriterion("GENDER between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andGenderNotBetween(String value1, String value2) {
            addCriterion("GENDER not between", value1, value2, "gender");
            return (Criteria) this;
        }

        public Criteria andCardidIsNull() {
            addCriterion("CARDID is null");
            return (Criteria) this;
        }

        public Criteria andCardidIsNotNull() {
            addCriterion("CARDID is not null");
            return (Criteria) this;
        }

        public Criteria andCardidEqualTo(String value) {
            addCriterion("CARDID =", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidNotEqualTo(String value) {
            addCriterion("CARDID <>", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidGreaterThan(String value) {
            addCriterion("CARDID >", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidGreaterThanOrEqualTo(String value) {
            addCriterion("CARDID >=", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidLessThan(String value) {
            addCriterion("CARDID <", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidLessThanOrEqualTo(String value) {
            addCriterion("CARDID <=", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidLike(String value) {
            addCriterion("CARDID like", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidNotLike(String value) {
            addCriterion("CARDID not like", value, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidIn(List<String> values) {
            addCriterion("CARDID in", values, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidNotIn(List<String> values) {
            addCriterion("CARDID not in", values, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidBetween(String value1, String value2) {
            addCriterion("CARDID between", value1, value2, "cardid");
            return (Criteria) this;
        }

        public Criteria andCardidNotBetween(String value1, String value2) {
            addCriterion("CARDID not between", value1, value2, "cardid");
            return (Criteria) this;
        }

        public Criteria andBirthdateIsNull() {
            addCriterion("BIRTHDATE is null");
            return (Criteria) this;
        }

        public Criteria andBirthdateIsNotNull() {
            addCriterion("BIRTHDATE is not null");
            return (Criteria) this;
        }

        public Criteria andBirthdateEqualTo(Date value) {
            addCriterionForJDBCDate("BIRTHDATE =", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateNotEqualTo(Date value) {
            addCriterionForJDBCDate("BIRTHDATE <>", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateGreaterThan(Date value) {
            addCriterionForJDBCDate("BIRTHDATE >", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateGreaterThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("BIRTHDATE >=", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateLessThan(Date value) {
            addCriterionForJDBCDate("BIRTHDATE <", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateLessThanOrEqualTo(Date value) {
            addCriterionForJDBCDate("BIRTHDATE <=", value, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateIn(List<Date> values) {
            addCriterionForJDBCDate("BIRTHDATE in", values, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateNotIn(List<Date> values) {
            addCriterionForJDBCDate("BIRTHDATE not in", values, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("BIRTHDATE between", value1, value2, "birthdate");
            return (Criteria) this;
        }

        public Criteria andBirthdateNotBetween(Date value1, Date value2) {
            addCriterionForJDBCDate("BIRTHDATE not between", value1, value2, "birthdate");
            return (Criteria) this;
        }

        public Criteria andRelationIsNull() {
            addCriterion("RELATION is null");
            return (Criteria) this;
        }

        public Criteria andRelationIsNotNull() {
            addCriterion("RELATION is not null");
            return (Criteria) this;
        }

        public Criteria andRelationEqualTo(String value) {
            addCriterion("RELATION =", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationNotEqualTo(String value) {
            addCriterion("RELATION <>", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationGreaterThan(String value) {
            addCriterion("RELATION >", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationGreaterThanOrEqualTo(String value) {
            addCriterion("RELATION >=", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationLessThan(String value) {
            addCriterion("RELATION <", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationLessThanOrEqualTo(String value) {
            addCriterion("RELATION <=", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationLike(String value) {
            addCriterion("RELATION like", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationNotLike(String value) {
            addCriterion("RELATION not like", value, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationIn(List<String> values) {
            addCriterion("RELATION in", values, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationNotIn(List<String> values) {
            addCriterion("RELATION not in", values, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationBetween(String value1, String value2) {
            addCriterion("RELATION between", value1, value2, "relation");
            return (Criteria) this;
        }

        public Criteria andRelationNotBetween(String value1, String value2) {
            addCriterion("RELATION not between", value1, value2, "relation");
            return (Criteria) this;
        }

        public Criteria andNicknameIsNull() {
            addCriterion("NICKNAME is null");
            return (Criteria) this;
        }

        public Criteria andNicknameIsNotNull() {
            addCriterion("NICKNAME is not null");
            return (Criteria) this;
        }

        public Criteria andNicknameEqualTo(String value) {
            addCriterion("NICKNAME =", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameNotEqualTo(String value) {
            addCriterion("NICKNAME <>", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameGreaterThan(String value) {
            addCriterion("NICKNAME >", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameGreaterThanOrEqualTo(String value) {
            addCriterion("NICKNAME >=", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameLessThan(String value) {
            addCriterion("NICKNAME <", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameLessThanOrEqualTo(String value) {
            addCriterion("NICKNAME <=", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameLike(String value) {
            addCriterion("NICKNAME like", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameNotLike(String value) {
            addCriterion("NICKNAME not like", value, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameIn(List<String> values) {
            addCriterion("NICKNAME in", values, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameNotIn(List<String> values) {
            addCriterion("NICKNAME not in", values, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameBetween(String value1, String value2) {
            addCriterion("NICKNAME between", value1, value2, "nickname");
            return (Criteria) this;
        }

        public Criteria andNicknameNotBetween(String value1, String value2) {
            addCriterion("NICKNAME not between", value1, value2, "nickname");
            return (Criteria) this;
        }

        public Criteria andCustomerstateIsNull() {
            addCriterion("CUSTOMERSTATE is null");
            return (Criteria) this;
        }

        public Criteria andCustomerstateIsNotNull() {
            addCriterion("CUSTOMERSTATE is not null");
            return (Criteria) this;
        }

        public Criteria andCustomerstateEqualTo(String value) {
            addCriterion("CUSTOMERSTATE =", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateNotEqualTo(String value) {
            addCriterion("CUSTOMERSTATE <>", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateGreaterThan(String value) {
            addCriterion("CUSTOMERSTATE >", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateGreaterThanOrEqualTo(String value) {
            addCriterion("CUSTOMERSTATE >=", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateLessThan(String value) {
            addCriterion("CUSTOMERSTATE <", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateLessThanOrEqualTo(String value) {
            addCriterion("CUSTOMERSTATE <=", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateLike(String value) {
            addCriterion("CUSTOMERSTATE like", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateNotLike(String value) {
            addCriterion("CUSTOMERSTATE not like", value, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateIn(List<String> values) {
            addCriterion("CUSTOMERSTATE in", values, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateNotIn(List<String> values) {
            addCriterion("CUSTOMERSTATE not in", values, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateBetween(String value1, String value2) {
            addCriterion("CUSTOMERSTATE between", value1, value2, "customerstate");
            return (Criteria) this;
        }

        public Criteria andCustomerstateNotBetween(String value1, String value2) {
            addCriterion("CUSTOMERSTATE not between", value1, value2, "customerstate");
            return (Criteria) this;
        }

        public Criteria andApproveIsNull() {
            addCriterion("APPROVE is null");
            return (Criteria) this;
        }

        public Criteria andApproveIsNotNull() {
            addCriterion("APPROVE is not null");
            return (Criteria) this;
        }

        public Criteria andApproveEqualTo(String value) {
            addCriterion("APPROVE =", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveNotEqualTo(String value) {
            addCriterion("APPROVE <>", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveGreaterThan(String value) {
            addCriterion("APPROVE >", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveGreaterThanOrEqualTo(String value) {
            addCriterion("APPROVE >=", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveLessThan(String value) {
            addCriterion("APPROVE <", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveLessThanOrEqualTo(String value) {
            addCriterion("APPROVE <=", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveLike(String value) {
            addCriterion("APPROVE like", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveNotLike(String value) {
            addCriterion("APPROVE not like", value, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveIn(List<String> values) {
            addCriterion("APPROVE in", values, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveNotIn(List<String> values) {
            addCriterion("APPROVE not in", values, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveBetween(String value1, String value2) {
            addCriterion("APPROVE between", value1, value2, "approve");
            return (Criteria) this;
        }

        public Criteria andApproveNotBetween(String value1, String value2) {
            addCriterion("APPROVE not between", value1, value2, "approve");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}